package LimitedTimeGame.Day_0217;

/**
 * @author zxc
 * @date 2023/02/17 15:37
 **/

/**
 * 题目 ：数值的整数次方
 * 题目详述 ：
 * 实现 pow(x, n) ，即计算 x 的 n 次幂函数（即，xn）。不得使用库函数，同时不需要考虑大数问题。
 *
 * 提示：
 * -100.0 < x < 100.0
 * -231 <= n <= 231-1
 * -104 <= xn <= 104
 *
 */
public class MyPow {
    /**
     * 思路 ：
     * （1）直接定义一个变量result，来接受结果;
     * （2）当 n > 0 时，则选择进行 当前数num的幂运算，直至 n == 0;
     * （3）当 n < 0 时，则选择进行 当前数num的幂运算，直至 n == 0;
     * （4）特殊情况 ：x == 1，无论其幂运算指数为任何数，结果result都为1;
     * ===》 会导致 超时的问题;
     * @param x
     * @param n
     * @return
     */
    public double myPow(double x, int n) {
        double result = 1;
        if(x == 1){
            return result;
        }
        while(n > 0){
            result *= x;
            n--;
        }
        while(n < 0){
            result /= x;
            n++;
        }
        return result;
    }
}
